#写一个三乐购物系统，功能使用函数封装
#1、欢迎界面
#   1、登录
#      输入用户名和密码
#      和系统里保存的用户信息比较，判断用户和密码是否合法
#      登录失败，返回上一级
#      登录成功：
#       1、查看商品
#       2、加入购物车
#       3、结算购物车
#       4、返回上一级
#   2、注册
#      用户名、用户密码、用户存入金额
#      用户信息固化
#   3、退出


import json
import os


def login(uname,pword):
    if uname in name_dict and pword==name_dict[uname]:
        print("用户名密码正确，登录成功")
        cho = input("请选择以下操作：1--查看商品，2--加入购物车，3--结算购物车， 4--返回上一级\n")

        def goods_option(cho):
            if cho == '1':
                goods_id = input("请输入商品编号：")
                if goods_id in goods_dict:
                    print(f"{goods_id}编号的商品名称为{goods_dict[goods_id]['name']}，价格为{goods_dict[goods_id]['price']},颜色为{goods_dict[goods_id]['color']}")
                else:
                    print("您输入的商品编号不正确")
            if cho == '2':
                goods_id1 = input("请输入您要加入购物车的商品编号")
                if goods_id1 in goods_dict:
                    shop_cart[goods_id1]=goods_dict[goods_id1]
                else:
                    print("您要加入购物车的商品编号不正确")
            if cho == '3':
                price_sum = 0
                for i in shop_cart:
                    price_sum = price_sum + shop_cart[i]['price']
                print(f"结算金额为{price_sum}")
            if cho == '4':
                goods_option(cho)
        goods_option(cho)
        return 1
    else:
        print("用户名密码不正确，登录失败！")
        return 0

def registe(uname,pword):
    name_dict[uname]= pword
    print("注册成功！")
    # print(name_dict)
    #将注册的人员名单信息写入文件,w--覆盖写入
    fp = open(file_path,"w")
    #json.dumps 把一个对象转换成json格式的字符串
    #json.loads 把一个json格式的字符串转换成对象
    result_str = json.dumps(name_dict)
    fp.write(result_str)
    #强制把写入内容从内存写入磁盘
    fp.flush()

def main():
    print("欢迎来到三乐购物系统")
    choice = input("请选择登录还是注册：登录请按0，注册请按1\n")
    if choice == '0':
        username = input("请输入您的用户名：")
        password = input("请输入您的密码：")
        login(username, password)
    if choice == '1':
        username = input("请输入您的用户名：")
        password = input("请输入您的密码：")
        money = input("请输入您想要存多少钱：")
        registe(username, password)


name_dict = {}
goods_dict = {"001":{"name":"oppo蓝牙耳机","price":399,"color":"黑色"},"002":{"name":"牙刷","price":12.9,"color":"白色"}}
shop_cart = {}

file_path = "user.txt"
#如果人员名单的文件存在 则读取
if os.path.exists(file_path):
    fp = open(file_path)
    name_str = fp.read()
    #将json格式的字符串转换为列表对象
    name_dict = json.loads(name_str)
main()


